Analysis-based Refactorings for Haskell
نویسندگان
چکیده
Refactoring is the process of improving the design of existing programs without changing their external behaviour. Refactoring can make a program easier to understand or modify if applied appropriately. Preserving behaviour guarantees that refactoring does not introduce (or remove) any bugs. Refactoring has taken a prominent place in software development and maintenance, but most of the recent success has been in the OO and XP communities. HaRe, the Haskell Refactorer, developed at the University of Kent by Huiqing Li, Claus Reinke and Simon Thompson, is a refactoring tool for Haskell 98. This paper presents a number of new refactorings for HaRe that fall under the category of program-analysis and it also presents some new refactorings that make use of the GHC type-checker; the new architecture for HaRe encompassing the type-checker is also discussed. General Terms Transformation, Refactoring, Program Slicing, Languages, Design
منابع مشابه
Formalisation of Haskell refactorings
Refactoring is a technique for improving the design of existing programs without changing their external behaviour. HaRe is the refactoring tool we have built to support refactoring Haskell 98 programs. Along with the development of HaRe, we have also investigated the formal specification and proof of validity of refactorings. This formalisation process helps to clarify the meaning of refactori...
متن کاملAn Expression Processor: A Case Study in Refactoring Haskell Programs
Refactoring is the process of changing the structure of a program while preserving its behaviour. This behaviour preservation is crucial so that refactorings do not introduce any bugs. Refactoring is aimed at increasing code quality, programming productivity and code reuse. Refactoring has been practised manually by programmers for as long as programs have been written; however, with the advent...
متن کاملA Comparative Study of Refactoring Haskell and Erlang Programs
Refactoring is about changing the design of existing code without changing its behaviour, but with the aim of making code easier to understand, modify, or reuse. Taking Haskell and Erlang as examples, we investigate the application of refactoring techniques to functional programs, and building tools for supporting interactive refactoring. Although both Haskell and Erlang are general-purpose fun...
متن کاملA Case Study in Refactoring Functional Programs
Refactoring is the process of redesigning existing code without changing its functionality. Refactoring has recently come to prominence in the OO community. In this paper we explore the prospects for refactoring functional programs. Our paper centres on the case study of refactoring a 400 line Haskell program written by one of our students. The case study illustrates the type and variety of pro...
متن کاملParaForming: Forming Parallel Haskell Programs Using Novel Refactoring Techniques
Enabling programmers to “think parallel” is critical if we are to be able to effectively exploit future multicore/manycore architectures. This paper introduces paraforming : a new approach to constructing parallel functional programs using formally-defined refactoring transformations. We introduce a number of new refactorings for Parallel Haskell that capture common parallel abstractions, such ...
متن کامل